package com.example.common.factory.data;

import androidx.annotation.StringRes;

/**
 * @author:0.2℃
 * @date： 2022-01-01 18:28
 * @version:
 * @Description ：数据源定义
 */
public interface DataSource {
    /**
     * 同时包括了失败与成功的接口
     * @param <T> 任意类型
     */
    interface Callback<T> extends SucceedCallback<T>, FailedCallback {

    }

    interface SucceedCallback<T> {
        /**
         * 数据加载成功，网络请求成功
         * @param t
         */
        void onDataLoaded(T t);
    }

    /**
     * 失败只关注失败的接口
     */
    interface FailedCallback {
        /**
         * 数据加载失败，网络请求失败
         * @param strRes
         */
        void onDataNotAvailable(@StringRes int strRes);
    }
}
